{if $methods|count > 0}
<methods>

{foreach from=$methods item=method}

    <method{if $method.static} static="1"{/if}{if $method.ifunction_call.returnsref} returnsref="1"{/if} name="{$method.function_name}" return="{$method.function_return}" line="{$method.line_number}">
    {if count($method.ifunction_call.params)}
    
        <params>
        {foreach from=$method.ifunction_call.params item=param}
        
                <param type="{$param.type}"{if $param.name|substr:0:1 == '&'} name="{$param.name|substr:1}" ref="1"{else} name="{$param.name}"{/if} {if $param.hasdefault}><![CDATA[{$param.default|trim}]]></param>{else} />{/if}
        {/foreach}

        </params>
        
    {/if}
    {if $method.descmethod}
    
        <overrided>
        {foreach from=$method.descmethod item=dmethod}
        
            <override name="{$dmethod.link}"{if $dmethod.sdesc}><![CDATA[{$dmethod.sdesc}]]></override>{else} />{/if}
        {/foreach}

        </overrided>
        
    {/if}
        {if $method.method_implements}
            <implementations>
            
            {foreach from=$method.method_implements item=imp}
            
                <implementation name="{$imp.link}"{if $imp.sdesc}><![CDATA[{$imp.sdesc}]]></implementation>{else} />{/if}
            {/foreach}
            
            </implementations>
        {/if}
        
        {if $method.method_overrides}<override name="{$method.method_overrides.link}"><![CDATA[{$method.method_overrides.sdesc}]]></override>{/if}
        
        {include file="docblock.tpl" sdesc=$method.sdesc desc=$method.desc tags=$method.tags}

    </method>
    
{/foreach}
</methods>

{/if}